Udacity deep learning
deep learning
看Udacity的deep learning课程,看到第一个使用TensorFlow构建的模型,因为TensorFlow对使用者来说真是个黑盒子,所以有几个点不懂:
1、参数初始化使用的是truncated_normal,按字面的意思是缩短的正态分布,是因为使用了局部加权线性回归算法吗?
2、因为第一点,后面的L2正则化对|W|2乘上了一个较小的0.01
3、softmax_cross_entropy_with_logits,这个函数名字也是老长,好像没看到什么地方更新了参数,那么参数矩阵是在什么地方更新的?
记录一下跟ml课程里面不同的地方:
1、参数的初始化使用的是正态分布(默认平均数是0,方差是1)来随机,这里有个疑惑,这样随机出来的参数不会太大吗
2、损耗函数使用是交叉熵,其实跟sigmoid取对数一样
3、optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss, global_step=global_step),这么一句代码就能够实现梯度下降,不需要显式去更新参数,
我猜是通过loss保留了对logits的引用,而logits又保留了对weights的引用。这样确实方便,但是屏蔽了许多细节,如果需要调试的时候就不好办了。
4、并不是层数越多越好,层数越多意味着算法越复杂,需要越多的数据去锻炼参数。